package com.gopay.common.domain.riskcontrol;

import com.gopay.common.domain.BaseEntity;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 风控个性化额度配置表
 * @RcCustLimitConf.java
 * @author zhuliang
 * @2017年5月12日 下午14:42:48  www.gopay.com.cn Inc.All rights reserved.
 */
@Entity
@Table(name = "RC_CUST_LIMIT_CONF")
public class RcCustLimitConf extends BaseEntity{


    private static final long serialVersionUID = 1366817998711079082L;

    /**
     * 主键
     */
    @Id
    @SequenceGenerator(name = "RC_CUST_LIMIT_CONF_SEQ_GENERATOR", sequenceName = "RC_CUST_LIMIT_CONF_SEQ", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "RC_CUST_LIMIT_CONF_SEQ_GENERATOR")
    @Column(name = "ID")
    private Long id;

    @Column(name="CUST_ID",nullable = false,length = 10)
	private String custId;

	/**
	 * 客户类型
	 */
	@Column(name="CUST_TYPE",nullable = false, length = 2)
	private String custType;
	
	/**
	 * 账户产品代码
	 */
	@Column(name="ACCT_PROD",nullable = false, length = 10)
	private String acctProd;


	/**
	 * 内部交易码
	 */
	@Column(name="INT_TXN_CD",nullable = false, length = 6)
	private String intTxnCd;

	/**
	 * 支付方式
	 */
	@Column(name="PAY_CHANNEL", length = 10)
	private String payChannel;

	/**
	 * 资金流向
	 */
	@Column(name="TRAN_DIRECTION",nullable = false, length = 30)
	private String tranDirection;

	/**
	 * 生效状态
	 */
	@Column(name="IS_ENABLED", length = 2)
	private String isEnabled;

	/**
	 * 单笔额度
	 */
	@Column(name = "ONCE_LIMIT", precision = 20, scale = 2)
	private BigDecimal onceLimit;

	/**
	 * 单日累计次数
	 */
	@Column(name = "DAY_TIMES", precision = 20, scale = 0)
	private Integer dayTimes;

	/**
	 * 单日累计金额
	 */
	@Column(name = "DAY_LIMIT", precision = 20, scale = 2)
	private BigDecimal dayLimit;


	/**
	 * 单日同一银行卡累计额度
	 */

	@Column(name = "DAY_BANKCARD_LIMIT", precision = 20, scale = 2)
	private BigDecimal dayBankcardLimit;

	/**
	 * 单月统一银行卡累计次数
	 */
	@Column(name = "MONTH_BANKCARD_TIMES", precision = 20, scale = 0)
	private Integer monthBankcardTimes;


	/**
	 * 创建人
	 */
	@Column(name="CREATE_OPER_ID")
	private String createOperId;
	
	/**
	 * 创建时间
	 */
	@Column(name="CREATED_TS")
	private Date createdTs;

	/**
	 * 最后修改人
	 */
	@Column(name="LAST_UPD_OPER_ID")
	private String lastUpdOperId;
	
	/**
	 * 最后修改时间
	 */
	@Column(name="LAST_UPD_TS")
	private Date lastUpdTs;

	/**
	 * 乐观锁版本号
	 */
	@Version
	@Column(name = "VERSION", nullable = false, precision = 22, scale = 0)
	private Integer version;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getCustId() {
		return custId;
	}

	public void setCustId(String custId) {
		this.custId = custId;
	}

	public String getCustType() {
		return custType;
	}

	public void setCustType(String custType) {
		this.custType = custType;
	}

	public String getAcctProd() {
		return acctProd;
	}

	public void setAcctProd(String acctProd) {
		this.acctProd = acctProd;
	}

	public String getIntTxnCd() {
		return intTxnCd;
	}

	public void setIntTxnCd(String intTxnCd) {
		this.intTxnCd = intTxnCd;
	}

	public String getPayChannel() {
		return payChannel;
	}

	public void setPayChannel(String payChannel) {
		this.payChannel = payChannel;
	}

	public String getTranDirection() {
		return tranDirection;
	}

	public void setTranDirection(String tranDirection) {
		this.tranDirection = tranDirection;
	}

	public String getIsEnabled() {
		return isEnabled;
	}

	public void setIsEnabled(String isEnabled) {
		this.isEnabled = isEnabled;
	}

	public BigDecimal getOnceLimit() {
		return onceLimit;
	}

	public void setOnceLimit(BigDecimal onceLimit) {
		this.onceLimit = onceLimit;
	}

	public Integer getDayTimes() {
		return dayTimes;
	}

	public void setDayTimes(Integer dayTimes) {
		this.dayTimes = dayTimes;
	}

	public BigDecimal getDayLimit() {
		return dayLimit;
	}

	public void setDayLimit(BigDecimal dayLimit) {
		this.dayLimit = dayLimit;
	}

	public BigDecimal getDayBankcardLimit() {
		return dayBankcardLimit;
	}

	public void setDayBankcardLimit(BigDecimal dayBankcardLimit) {
		this.dayBankcardLimit = dayBankcardLimit;
	}

	public Integer getMonthBankcardTimes() {
		return monthBankcardTimes;
	}

	public void setMonthBankcardTimes(Integer monthBankcardTimes) {
		this.monthBankcardTimes = monthBankcardTimes;
	}

	public String getCreateOperId() {
		return createOperId;
	}

	public void setCreateOperId(String createOperId) {
		this.createOperId = createOperId;
	}

	public Date getCreatedTs() {
		return createdTs;
	}

	public void setCreatedTs(Date createdTs) {
		this.createdTs = createdTs;
	}

	public String getLastUpdOperId() {
		return lastUpdOperId;
	}

	public void setLastUpdOperId(String lastUpdOperId) {
		this.lastUpdOperId = lastUpdOperId;
	}

	public Date getLastUpdTs() {
		return lastUpdTs;
	}

	public void setLastUpdTs(Date lastUpdTs) {
		this.lastUpdTs = lastUpdTs;
	}

	public Integer getVersion() {
		return version;
	}

	public void setVersion(Integer version) {
		this.version = version;
	}

}
